package devcken.hibernate.dialect;

import java.sql.Types;

import org.hibernate.dialect.SQLServerDialect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Microsoft SQL Server 에서 유니코드를 지원하기 위한 Dialect 를 정의한다.
 * @author Devcken
 */
public class UnicodeSupportSqlServerDialect extends SQLServerDialect
{
	private final static Logger logger = LoggerFactory.getLogger(UnicodeSupportSqlServerDialect.class);
	
	public UnicodeSupportSqlServerDialect()
	{
		super();
		
		try
		{
			// VARCHAR 타입과 CLOB 타입을 Unicode 지원 형식으로 재정의한다. 
			registerColumnType(Types.VARCHAR, "nvarchar($l)");
			registerColumnType(Types.CLOB, "nvarchar(max)");
		}
		catch (Exception error)
		{
			logger.error(error.getMessage(), error);
		}
	}
}